package com.inei.cie.capitulov;

import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.inei.cie.R;
import com.inei.cie.capituloix.CapituloIX_Activity;
import com.inei.cie.dao.CapituloVDao;
import com.inei.cie.entidades.P5_F;
import com.inei.cie.utilitarios.ListadoPisosAdapter;

public class CapituloV_Pisos extends Activity implements OnClickListener {

	public TextView tviTitulo;
	public Bundle b;
	public String CodLocal;
	public int predio;
	public ListView lviPisos;
	public ListadoPisosAdapter adapter;
	public int cantidadPisos;
	public EditText eteCantidadPisos;
	public Button butGuardarPisos;
	public int cantidadPisosRegistrados;
	public CapituloVDao cap5Dao;
	public int pisosAIngresar;
	public List<P5_F> p5_f;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.capitulo_v_lista_pisos);
		cap5Dao = new CapituloVDao(CapituloV_Pisos.this);
		b = getIntent().getExtras();
		CodLocal = b.getString("id_local");
		predio = b.getInt("Nro_Pred");
		tviTitulo = (TextView) findViewById(R.id.tviTitulo);
		lviPisos = (ListView) findViewById(R.id.lviPisos);
		butGuardarPisos = (Button) findViewById(R.id.butAceptarPisos);
		eteCantidadPisos = (EditText) findViewById(R.id.eteCantidadPisos);
		tviTitulo.setText("Codigo Local " + CodLocal + " - Predio Nro. "
				+ predio);
		cantidadPisosRegistrados = cap5Dao.cantidadPisos(CodLocal, predio + "");
		if (cantidadPisosRegistrados > 0) {
			eteCantidadPisos.setText(cantidadPisosRegistrados + "");
			adapter = new ListadoPisosAdapter(CapituloV_Pisos.this,
					cantidadPisosRegistrados, CapituloV_Pisos.this, CodLocal,
					predio, b);
			lviPisos.setAdapter(adapter);
			/*
			 * lviPisos.setOnItemClickListener(new OnItemClickListener() {
			 * 
			 * @Override public void onItemClick(AdapterView<?> arg0, View v,
			 * int pos, long arg3) { Intent ambientes = new
			 * Intent(CapituloV_Pisos.this,
			 * CapituloV_Total_Ambientes_Activity.class); b.putInt("P5_NroPred",
			 * predio); b.putInt("P5_NroPiso", (pos + 1));
			 * ambientes.putExtras(b); startActivity(ambientes); } });
			 */
		} else {
			eteCantidadPisos.setText(0 + "");
		}
		butGuardarPisos.setOnClickListener(this);
		pisosAIngresar = Integer
				.parseInt(eteCantidadPisos.getText().toString());
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.butAceptarPisos:
			if (eteCantidadPisos.getText().length() > 0) {
				compararDataIngresada(eteCantidadPisos, CodLocal, predio);
			} else {
				Toast.makeText(CapituloV_Pisos.this,
						"Debe ingresar la cantidad de " + "pisos",
						Toast.LENGTH_SHORT).show();
			}
			break;
		}
	}

	public void compararDataIngresada(EditText etePisos, String codLocal,
			int predio_actual) {
		if (etePisos.getText().length() == 0) {
			Toast.makeText(this, "Debe ingresar cantidad de pisos",
					Toast.LENGTH_SHORT).show();
		} else {
			cantidadPisosRegistrados = cap5Dao.cantidadPisos(CodLocal, predio
					+ "");
			int pisosAIngresar = Integer
					.parseInt(etePisos.getText().toString());
			int pisosRegistrados = cantidadPisosRegistrados;
			if (pisosRegistrados > pisosAIngresar) {
				String mensaje = cap5Dao
						.comparacionPisosRegistradoMayorIngresados(codLocal,
								predio_actual, pisosAIngresar,
								pisosRegistrados, adapter);
				Toast.makeText(CapituloV_Pisos.this, mensaje,
						Toast.LENGTH_SHORT).show();
			} else {
				if (pisosRegistrados < pisosAIngresar) {
					for (int i = pisosRegistrados; i < pisosAIngresar; i++) {
						cap5Dao.ingresarFotosEscalaPisos(CodLocal, predio,
								(i + 1), "", "", 1, 1, 0);
						/*
						 * adapter.listaPisos.add((i + 1));
						 * adapter.escala.add(""); adapter.fotosPisos.add("");
						 */
					}
					Toast.makeText(CapituloV_Pisos.this,
							"Se agregaron los pisos", Toast.LENGTH_SHORT)
							.show();
					adapter = new ListadoPisosAdapter(CapituloV_Pisos.this,
							pisosAIngresar, CapituloV_Pisos.this, CodLocal,
							predio, b);
					lviPisos.setAdapter(adapter);
				} else {
					if (pisosRegistrados == pisosAIngresar) {
						Toast.makeText(
								CapituloV_Pisos.this,
								cap5Dao.comparacionPisosRegistradoIgualIngresados(),
								Toast.LENGTH_SHORT).show();
					}
				}
			}
		}
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		getMenuInflater().inflate(R.menu.menu_capitulo_v_pisos, menu);
		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		switch (item.getItemId()) {
		case R.id.mnSalir:
			AlertDialog.Builder dialogo1 = new AlertDialog.Builder(this);
			dialogo1.setTitle("Importante");
			dialogo1.setMessage("Deseas Salir ?");
			dialogo1.setIcon(android.R.drawable.ic_dialog_alert);
			dialogo1.setCancelable(false);
			dialogo1.setPositiveButton("Si",
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialogo1, int id) {
							System.exit(0);
						}
					});

			dialogo1.setNegativeButton("No",
					new DialogInterface.OnClickListener() {
						public void onClick(DialogInterface dialogo1, int id) {
							return;
						}
					});
			dialogo1.show();
			break;
		case R.id.mnGuardar:
			if (eteCantidadPisos.getText().toString().equals("0")) {
				Toast.makeText(CapituloV_Pisos.this,
						"Debe ingresar la cantidad de pisos",
						Toast.LENGTH_SHORT).show();
			} else {
				Boolean verificarDatosTotales;
				verificarDatosTotales = cap5Dao.verificarEscalasFotosCompletas(
						CodLocal, predio);
				/*
				 * if(!verificarDatosTotales){
				 * Toast.makeText(CapituloV_Pisos.this,
				 * "Debe ingresar las escalas y predios " + "requeridos",
				 * Toast.LENGTH_SHORT).show(); } else{
				 */
				for (int i = 0; i < adapter.fotosPisos.size(); i++) {
					cap5Dao.actualizarP5Pisos(
							CodLocal,
							predio,
							(i + 1),
							cap5Dao.obtenerRutasFotosPisosGuardadas(CodLocal,
									predio).get(i), cap5Dao
									.obtenerEscalasGuardadas(CodLocal, predio)
									.get(i), 1, 1, 0);
				}
				Toast.makeText(CapituloV_Pisos.this,
						"Se ingresaron los datos de manera correcta",
						Toast.LENGTH_SHORT).show();
				Intent menuPisos = new Intent(CapituloV_Pisos.this,
						CapituloV_Menu.class);
				menuPisos.putExtras(b);
				startActivity(menuPisos);
				finish();
				// }
			}
			break;
		case R.id.mnFoto:
			Intent foto = new Intent(CapituloV_Pisos.this,
					CapituloIX_Activity.class);
			// b.putBoolean("pregunta", true);
			foto.putExtras(getIntent().getExtras());
			foto.putExtra("pregunta", true);
			startActivity(foto);
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}

	@Override
	public void onBackPressed() {
		// TODO Auto-generated method stub
		super.onBackPressed();
		Intent irPredio = new Intent(CapituloV_Pisos.this, CapituloV_Menu.class);
		Bundle f = getIntent().getExtras();
		f.putString("id_local", CodLocal);
		f.putInt("Nro_Pred", predio);
		irPredio.putExtras(f);
		startActivity(irPredio);
		finish();
	}
}
